package _06_ObjectStream;
/*
 * ObjectOutput.java
 *
 * Created on 19 de diciembre de 2004, 19:46
 */

import java.io.*;


public class ObjectOutput {
    
    ObjectOutputStream data;
	final String ARCHIVO = "Objetos.dat";
                
	ObjectOutput() {
            if (abrirArchivo()) {
                 grabar();
                 cerrar();
            }
	}
	
	boolean abrirArchivo() {
            File f = new File(ARCHIVO);

            try {
                 data = new ObjectOutputStream( 
                        new FileOutputStream(f) );
                 System.out.println("abre el ObjectOutputStream");
                 return true;
            } catch (IOException e) {
                 System.out.println(e.getMessage());
                 return false;
            }
	}
	
	void grabar() {
            try {
                data.writeObject( new Objeto("Objeto I",25.67,true) );    
                data.writeObject( new Objeto("Objeto II",30.2,true) );
                Objeto o = new Objeto();
                o.setNombre("Objeto III");
                o.setValor(700);
                o.setActivo(false);
                data.writeObject( o );
   
            } catch (IOException e) {
                System.out.println(e.getMessage());  
            }
	}
	
	void cerrar() {
            try {
                data.flush();
                data.close();
                System.out.println("cierra el ObjectOutputStream");
            } catch (IOException e) {
                System.out.println(e.getMessage());
            }		
	}

        public static void main(String[] args) {
            new ObjectOutput();
	}
}
